23

» WarCraft 3 / Способность

Похожие вопросы:

ответ
Когда юнит проучивает пассивку, добавляй в группу юнита, который выучил пассивку. Дальше все просто -
Юнит умирает
Киллинг юнит в нашей группе - да
Дайинг юнит не в команде владельца киллинг юнит.
Игрок - адд проперти - 500 золото (овнер оф киллинг юнит)
ответ
скорее всего, он говорит о SetUnitMovespeed ()
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь
ответ
На JASS-е есть функция GetLearnedSkill(), которая выдает rawcode выученного умения. Создаешь переменную типа "целочисленная" с названием SkillCode, потом в начале действий триггера пишешь через Custom Script что-то типо этого:
set udg_SkillCode=GetLearnedSkill()
и затем делаешь какие тебе там нужны сравнения на переменную SkillCode.
ответ
XGM Bot:
Похожие вопросы:

ответ
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
ответ
ИИ чтоли не кастует? Сделай триггерный каст, Событие - юнит обнаружил цель в пределах досягаемости, проглотить не в кулдауне и цель неуязвимый враг, пойти и проглотить юнита...
ответ
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
ответ
Ну тебе нужно чтобы был прямо таки бафф который можно рассеивать?
Для начала сделай способность, и баф на основе какой нибудь пустышки, подойдет ярость у некромантов, так же переодический триггер который раз в пол секунды проверяет всех юнитов в группе, есть ли у них бафф если юнит мертв или у него нет баффа, то у юнита удаляется способность на доп урон зданиям и сам унит удаляется из группы.
При касте твоим шаманов заклинания на цель, ты добавляешь цель заклинания в группу, которую и перебирает описанный выше триггер.
Надеюсь понятно?
ответ
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.


23

» WarCraft 3 / Wait в циклах

Похожие вопросы:

ответ
cs: set udg_e[DorLoopIntegerA - 1] = AddSpecialEffectLoc ( PolarProjectionBJ( GetUnitLoc(GetTriggerUnit(), 250, i ), "Abilities\\Spells\\Human\\FlameStrike\\FlameStrike1.mdl")
udg_e - глобальная переменная. Массив типа эффект.

А вообще, изучаем основы программирования. Глава II - массивы.
ответ
Нет. Я пока хочу достроить карту на GUI, думаю мне осталось дней 10-30 работать, а буду ли следующую делать - под вопросом. Не хочется тратить время на изучение jass из-за пустяка! Однако Я использовал Custom Script, но это было содрано с одного сайта, а вот чтобы делать самому нужно сначала полностью изучить язык. Либо знаю, либо нет, чуть-чуть не считается!
Что касается wait, то если не это то что тогда?
Опытным путём сам установил что в процесс ничего не вклинивается. Можно использовать Триггер как Функцию и ссылаться на него в другом Триггере. По сути, это и есть функция, если глянуть на jass. Вопрос закрыт.

23

» WarCraft 3 / как сделать щит?

Похожие вопросы:

ответ
А что мешает заставлять юнит юзать манащит, при изучении, воскрешении и деактивации?
ответ
Можно сделать на основе заклинания Жар Преисподней, но без триггеров тут не обойтись.
ответ
Тимур:
Через способность "панцирь с шипами".
Не панцирь с шипами, а доспехи горного великана (Каменные доспехи), но только если требуется заблокировать физический урон.
Для блокировки любого типа урона потребуется триггер срабатывающий на нанесение урона, и последующее лечение, чтобы изобразить блокировку урона.
ответ
на определение сзади ли юнит есть функция
function IsUnitBack takes unit uF, unit uWhichBack returns boolean
        real r1 = bj_RADTODEG * Atan2(GetUnitY(uWhichBack) - GetUnitY(uF), GetUnitX(uWhichBack) - GetUnitX(uF)) + 360.
        real r2 = GetUnitFacing(uWhichBack) + 360.
           if GetUnitY(uWhichBack) < GetUnitY(uF) then
               set r1 = r1 + 360.
           endif
        return (r1<=(r2+45.) and r1>=(r2-45.))
    endfunction
ответ
Берешь способность на базе авиабомб или еще какой-нибудь пустышки, потом устанавливаешь систему детекта урона, к ней прикручиваешь свой триггер, который проверяет наличие способности, отнимает ману, добавляет способность на +100500 хп, запускает таймер на 0.00 секунд с повешенной на него через хеш информацией о нанесенном уроне, и после срабатывания таймера возвращает отнятые хп и удаляет +100500 хп способность.

23

» WarCraft 3 / Сброс перезарядки предмета.

Похожие вопросы:

ответ
Gerhop, если у игрока лишь 1 герой то можно сразу дать этот скилл
при подборе предмета разрешать его а при выпадении запрещать
тогда вроде кд будет сохранятся
если мне память не изменяет

23

» WarCraft 3 / Переменная

Похожие вопросы:

ответ
Что такое "назначить пользовательский параметр юнита или предмета" и как им пользоваться?
Используется для сохранения каких-нибудь своих данных в этот конкретный предмет или юнита
Добрые люди, как присвоить глобальной переменной (целочисленной) цену определенного предмета (так чтобы если изменить цену в редакторе объектов, то в редакторе триггеров она сама изменялась) или какая главная характеристика определенного героя (разум, сила, ловкость).
Никак, только руками указывать или использовать это xgm.guru/p/fly-data
ответ
globals
	string  array  str
endglobals

set  str[ 0 ]  =  "H"
set  str[ 1 ]  =  "E"
set  str[ 2 ]  =  "L"
set  str[ 3 ]  =  "L"
set  str[ 4 ]  =  "O"

call BJDebugMsg( str[ 0 ] + str[ 1 ] + str[ 2 ] + str[ 3 ] + str[ 4 ] )
ответ
Пушистый, я пытаюсь локальной переменной присвоить значение глобальной переменной типа Способность и пишет: Cannot convert integer to ability
local ability s
set udg_BuferAbility=GetSpellAbilityId()
set s=udg_BuferAbility
ответ
Глянул... код (?)
Такого слепка из говна я давненько не видел
Ну, во-первых, у тебя нет инстанса abilitylist, то есть:
AbilityList abilitylist = abilitylist .create()
Во-вторых :
static thistype newAbility()
{
  thistype this = allocate()
  ..
  пишете свою ерунду
  ..
  return this
}
А в третьих почему у в абилитилисте вместо 1 массива из структур абилити со всеми вытекающими параметрами есть по массиву на каждый параметр?
Написал про код с целью вам сказать, что нужно работать над собой, почитать про списки в языках программирования, а потом уже лепить один вариант

23

» WarCraft 3 / Как вращать юнита вокруг точки?

Похожие вопросы:

ответ
Может, поставить нулевую скорость в редакторе объектов?
Или не нулевую, но триггерно каждые 0.03 с. задавать ему координаты, на которых он изначально поставлен.

23

» WarCraft 3 / Рав коды

Похожие вопросы:

ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь

23

» WarCraft 3 / Взаимосвязь.

Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
BlackCascade:
Обьясните связь, почему построенный обьект не удаляется в след триггере
Потому, что в следующем триггере ты пытаешься обратиться к построенному объекту с помощью функции "Реакция на событие - Constructed Structure". Но эта функция не вернёт юнит, т.к. она возвращает юнит только когда событием была постройка здания. У тебя же событие "Боевая единица - Unit Enters Region" и в нём не происходит постройка здания. В нём происходит вход в регион и оно возвращает уже юнит, вошедший в регион, а никак не построенное здание.
разобраться бы во всем этом еще.
Когда юнит завершает строительство, игра сохраняет построенно здание в переменную UnitOfDeath[RectOfDeathLength], назначает новому триггеру новое событие, что в область вокруг построенного здания вошёл юнит. Эту область игра сохраняет в переменной RectOfDeath[RectOfDeathLength]. Когда событие срабатывает, цикл проверяет, в какой из этих областей находится вошедший юнит и удаляет здание, которое было связано с этой областью переменной UnitOfDeath[RectOfDeathLength].
ответ
решил проблему костылём - дал возможность рабочему строить только башню - шаблонку, которая в свою очередь может улучшаться в две указанные башни. Взаимосвязь поставить только от башни - шаблонки. Лимит поставил на башню шаблонки.
Но тема не закрыта. Хотелось бы узнать можно ли решить проблему без костылей.
ответ
Дело именно в количестве триггеров а не в их начинки и назначении, создавать триггеры динамически по мере надобности в гуях нельзя, так что переходите на jass.
ответ
Возможно, упустил то, что в игре прибиты гвоздями 4 расы и изменение визуальных файлов никак не меняет игровой код?

23

» WarCraft 3 / Пассивка

Похожие вопросы:

ответ
Опен дота в помощь, тупо добавление пассивки на скорость атаки при каждом ударе, потом если юнит бьет другую цель, то удаляем половину бонуса.
ответ
У пассивок кроме креста перерождения и эксгумации труповозки нет кулдауна, ну совсем нет! Так что берем перерождение и рисуем на нем кулдаун мемхаком, а чем эффект крита или блока изображаем триггерно ну или вручаем, удаляем эти пассивки в заблочннном спелбуке юниту.
ответ
Если абуза боишься, можно просто поставить, что пассивка не действует чаще, например, раза в 0.5 секунды (таймером вешаешь на юнита "что-то" - абилу-маркер, хэш-значение и т. д., после окончания таймера убираешь, а в условиях - если у юнита это "что-то" есть, то пассивка не канает)
ответ
еще раз - нет! дефольтные способности вы не отследите, только полностью триггерный аналог, баши и криты сделанные триггерно лежать вот тут
Простенько, на jass но для начала сойдет.
ответ
quq_CCCP:
KaneThaumaturge, эмм а как насчет не делать такие пассивки? Детект физического урона вещь довольно сложная, а еще и если нужно для множества юнитов весьма ресурсоёмкая, желательно все сделать по шустрее, без лишний или тяжелых действий.
Готовые системы этого дела есть, но они на jass и требуют еще и понимания как они работают, так что если у вас нет этого понимания и желания понимать это - то мб не надо?
А если делать через
Событие: Юнит х атакован
Условие: На ваш извращенный вкус
Действие -
Атакуемый юнит=z
добавить к триггеру у событие "юнит получает урон"
В чём фишка? Через такую схему можно задать в событии, что именно z получает урон.
Так же следует не забывать вставлять в условие кто у нас Damage source
Понимаю, что коряво, криво, кособоко, не без багов, но для одного героя вполне работает
KaneThaumaturge:
Extremator, Есть идея: Когда юнит атакует ставить L(логическая) - да. Потом отслеживать его приказы, и если он что-то приказал, то ставить его L=нет. С этим парарелельно запускать таймер, который равен времени его замаха. Ну и по окончанию таймера проверять логическую да или нет и уже делать действия.
Ага, а как модификаторы ускорения атаки отслеживать будешь? Или юнита под блудластом?

23

» WarCraft 3 / Отряд

Похожие вопросы:

ответ
  • Выбираешь всех целевых юнитов в группу.
  • Создаёшь дамми.
  • Используя ForGroup и GetEnumUnit, применить на каждого юнита в группе заклинание.
  • Очищаешь групппу.
  • Удаляешь группу.
  • Удаляешь дамми.

У дамми-юнита должны стоять настройки анимации, позволяющие применять способности без задержек, у способности не должно быть кулдауна.
ответ
~8gabriel8:
bOrissko, у тебя вроде как ссылалось всегда на Паладина, так как он Hero [1], будь-то владелец юнита, либо реплика от юнита. Точно уже запамятовал, так как шустро всё переделал. У меня нет желания тратить время на проверку триггера, когда указан Tiggering unit/Переключающий юнит, потому стараюсь всегда указывать точно к ситуации, в данном случае переделал так, что диалог срабатывает при приближении героя на расстояние не более 256 к капитану. Указал везде Entering unit/Не знаю как будет в русских триггерах, наверное, Вошедший или Входящий юнит. Вместо паузы для героя поставил приказ Стоп, хотя это, наверное, неправильно я сделал, так как он погонится во время диалога за приблизившимися врагами. Пожалуй, лучше верни герою паузу вместо Стоп, а также добавь неуязвимость до распаузы.
По поводу диалогов, мне рассказал автор кампании Эфирия, в создании которой участвую, что оптимальной длительностью диалогов является 5 секунд на строчку, если строка не полная, то прикидываешь, на сколько из 5 секунд она тянет. В самой первой фразе в диалоге лучше прибавлять секунду, так как мозг не сразу переключается с игры на диалог, и его начальная реплика зачастую кажется быстрой. Например, у тебя первая фраза "Привет!", это одна секунда, но так как она первая, то я поставил две. Следующая фраза тянет на 4 секунды, так и поставил.
Чтобы прикинуть расстояние до юнита, необходимо пользоваться сеткой:
Сетка в редакторе (кнопка G):
большой квадрат = 512х512
средний квадрат = 128х128
малый квадрат = 32х32
Считается расстояние от центра юнита, а не крайних точек модели. У тебя было 150, но мне показалось, что это мало, ведь подходить надо очень близко, потому поставил 256.
ответ
XGM Bot:
Похожие вопросы:

ответ
Частично не понял, тоесть нужно что бы в кинематике был несуществующий юнит?
Допустим в окне кинематики паладин с каким либо именем что то говорит, но на карте его нет. Если да то это Спецэффекты - Transmission From Unit-Type
ответ
А касательно остальной части, если UnitUserData нигде не используется, создаешь массив юнитов и отрядов. Массив юнитов забиваешь своими капитанами. В UnitUserData капитана пихаешь его порядковый номер в массиве. Создаешь группу юнитов для этого капитана.
  1. Добавление через каст способности.
Я бы делал через 2 разные абилки с одной и той же позицией в интерфейсе. Пока нужный тебе юнит не является частью отряда - у него таргетная абилка при касте которой на капитана он добавляется в группу соответствующего капитана и получает 2ю абилку взамен первой.
Касательно выделения этих пехотинцев - можно намутить что-то с передачей контроля или создать триггер, который будет снимать выделение с юнитов у которых есть 2я абилка. Если ты хочешь чтобы по одиночке можно было выделять пехотинцев - можешь создать переменную для каждого игрока с капитанами, куда будет просто записываться последний выбранный юнит. При снятии выделения - проверять не выбран ли этот же юнит, в случае чего не снимать выделение. Правда не уверен будет ли корректно работать :> В крайнем случае - будет работать в три клика вместо двух. Если я не ошибаюсь.
Касательно поведения этих пехотинцев - что-то реально стоящее сделать сложно. Возможно, но мне не с руки все расписывать :> Простейший вариант - приказывать пехотинцам после добавления в группу следовать за капитаном.
  1. Добавление через атаку капитана
Триггер, проверяющий что капитан получил урон или атакован, как угодно. Далее любым способом проверяешь есть ли в группе этого капитана юниты. Если нет - выбираешь всех пехотинцев N радиусе, добавляешь в отряд, заменяешь абилку/либо просто приказываешь кастануть в капитана первую абилку.
ответ
Ну только триггерные системы отрядов, была такая...
Вот пример ссылочка
Были и другие, поиск в помощь.
Вот еще ссылка
ответ
запомнить всех выбранных, затем очистить эту группу, добавить сначала твоего героя, а затем всех остальных
ответ
  • Выбираешь всех целевых юнитов в группу.
  • Создаёшь дамми.
  • Используя ForGroup и GetEnumUnit, применить на каждого юнита в группе заклинание.
  • Очищаешь групппу.
  • Удаляешь группу.
  • Удаляешь дамми.

У дамми-юнита должны стоять настройки анимации, позволяющие применять способности без задержек, у способности не должно быть кулдауна.

ответ
на каждый снаряд делаешь группу, в нее заносишь всех кто был поражен
done

23

» WarCraft 3 / Пара вопросов

Похожие вопросы:

ответ
Я не знаю, сработает ли это на практике, но теоретически - должно.
Нужно сделать первой главой в доп. кампании пустую карту, где будет только 2 действия - запуск ролика и сразу победа, без экрана статистики и диалогового окна. Как именно запускать ролик после победы - см. в обычных кампаниях. В RoC все 4 финальных ролика в кампаниях так запускаются при помощи этого действия.
А "пробел" между миссиями в доп. кампании, насколько я знаю, сделать невозможно. В обычных кампаниях за это отвечает файл UI\CampaignStrings.txt или UI\CampaignStrings_exp.txt. Если найдешь его аналог в файлах доп. кампании - попробуй изменить сроку со второй главой на:
Mission1=""
Совсем не факт, что там этот файл есть, и не факт, что этот способ будет работать - но попробовать можно. Тогда нужны будут 2 кнопки для 2й главы - "пробел" и "нормальная", которые нужно будет скрывать и открывать по мере прохождения.
ответ
  1. можно только модель героя, которая будет прикреплена в качестве спецэффекта к дамми юниту с особыми анимациями.
  2. Удалить и добавить снова, или юзнуть книгу забвения (учитывая что это руна это совсем изи) а затем приказать герою выучить все скиллы кроме нужного тебе, ну или как то иначе.
ответ
RikLine:
Sergarr:
Со вторым - можно легко уменьшить хп всех юнитов одной стороны с помощью функции Set Handicap из ГУИ.
Да, я понимаю, но другой вопрос: как "дать редактору понять", что один из игроков отсутствует? Какое событие или же условие надо поставить?
Можно просто считать количество играющих игроков. В ГУИ это делается так: создаешь целочисленную переменную и приравниваешь ее значение к Number of players in (All of players matching (((Matching player) slot status) равно Играет)).
Чтобы это дело прикрутить к установке гандикапа, ты создаешь триггер с кучей событий вида Игрок 1 (красный) leaves the game, туда вставляешь эту штуку выше, и затем там же устанавливаешь гандикап.
Да, и еще, эта функция считает всех компьютерных игроков тоже как "играющих", так что на это надо сделать поправку.

23

» WarCraft 3 / Активность

Похожие вопросы:

ответ
в чем вопрос?
ответ
идем читать статьи
ищем фразы - запретить заклинание, спелл бук, триггеры
ответ
Ну вылет у тебя на функции, которая занимается отрисовкой графики. Она универсальная, там и частицы обрабатываются, и поверхности. Так что ошибка явно в модели, а какой и как - хрен его знает
ответ
Steal nerves:
ссылка
не прерывается приказ почти у любой абилы без цели. В большинстве случаев, останавливаются, чтоб заюзать скилл. А потом продолжают делать те действия, которые оборвал. Типа Рев. Есть длительные касты, например: заговор неуязвимости, он остановится, попрыгает (channeling-анимация), и потом дальше будет идти. Или заклинание крови дракончика.
А вот тех, из-за чего еще и не останавливается на ходу, совсем мало
То есть если я поставлю в очередь приказы постройки, а в середине использую эти способности, то очередь прервётся?
можно проверить

23

» WarCraft 3 / Способность

Похожие вопросы:

ответ
Когда юнит проучивает пассивку, добавляй в группу юнита, который выучил пассивку. Дальше все просто -
Юнит умирает
Киллинг юнит в нашей группе - да
Дайинг юнит не в команде владельца киллинг юнит.
Игрок - адд проперти - 500 золото (овнер оф киллинг юнит)
ответ
скорее всего, он говорит о SetUnitMovespeed ()
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь
ответ
На JASS-е есть функция GetLearnedSkill(), которая выдает rawcode выученного умения. Создаешь переменную типа "целочисленная" с названием SkillCode, потом в начале действий триггера пишешь через Custom Script что-то типо этого:
set udg_SkillCode=GetLearnedSkill()
и затем делаешь какие тебе там нужны сравнения на переменную SkillCode.
ответ
XGM Bot:
Похожие вопросы:

ответ
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
ответ
ИИ чтоли не кастует? Сделай триггерный каст, Событие - юнит обнаружил цель в пределах досягаемости, проглотить не в кулдауне и цель неуязвимый враг, пойти и проглотить юнита...
ответ
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
ответ
Ну тебе нужно чтобы был прямо таки бафф который можно рассеивать?
Для начала сделай способность, и баф на основе какой нибудь пустышки, подойдет ярость у некромантов, так же переодический триггер который раз в пол секунды проверяет всех юнитов в группе, есть ли у них бафф если юнит мертв или у него нет баффа, то у юнита удаляется способность на доп урон зданиям и сам унит удаляется из группы.
При касте твоим шаманов заклинания на цель, ты добавляешь цель заклинания в группу, которую и перебирает описанный выше триггер.
Надеюсь понятно?
ответ
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.


23

» WarCraft 3 / Я хз

Похожие вопросы:

ответ
так же смотри наработки на сайте/форуме
ответ
Stalker5500, как ты описал- должно работать.
Только сделай в событие либо только Нейтрально-враждебный умирает, либо Событие- боевая единица умирает, а в условие- Владелец умирающего - Нейтрально-враждебный.
А дальше в действиях есть такая конструкция в разделе Общие параметры if/then/else. Используй ее и будет тебе счастье
ответ
DoctorDoza, xgm.guru/p/wc3/jass_local_vars
я сегодня добрый так что пример напишу
void act(){ // эта функция - действие триггера
	unit attacker=GetAttacker(); // заносим атакующего в локалку
	unit attacked=GetTriggerUnit(); // заносим атакованного в локалку
	IssueTargetOrder( attacker, "thunderbolt",attacked); // приказываем атакующему кастануть молот бурь на атакованного
	TriggerSleepAction(0.5) // ждём 0.5 сек чтобы успел кастануть спел
	IssueTargetOrder( attacker, "attack",attacked); // приказываем атакующему атаковать атакованного 
}
ответ
Можно проще, через UnitPool. Правда у него нету GUI API.
"""
native CreateUnitPool takes nothing returns unitpool
native DestroyUnitPool takes unitpool whichPool returns nothing
native UnitPoolAddUnitType takes unitpool whichPool, integer unitId, real weight returns nothing
native UnitPoolRemoveUnitType takes unitpool whichPool, integer unitId returns nothing
native PlaceRandomUnit takes unitpool whichPool, player forWhichPlayer, real x, real y, real facing returns unit
"""

23

» WarCraft 3 / Хендл

Похожие вопросы:

ответ
В "key" есть функция "Load trigger Handle". Как ей воспользоваться, чтобы допустим получить хэндл начального и последнего триггера?
Так?
ответ
вариант №1 - не нулить переменные, оставляя утечки номеров хендлов. это безопасно, да, если знаешь, что делаешь.
№2 - ловить UNIT_DEATH и чистить за ним
ответ
Проверил, да
ответ
Функции, исполняемые при тиках таймеров не должны принимать параметров. Для передачи данных нужно пользоватся хеш-таблицами.

23

» WarCraft 3 / Jass

Похожие вопросы:

ответ
низнаю какой спел у героя перезаряжается, на какой хватает маны, какие спелы у героя вообще есть, и в прочем на основе каких спелов они сделаны
да здравствует бд
FenikS1991:
Я знаю что это координаты умник.. пустые придирки не прокатят
я не только про координаты, я про всё
короче судя по всему ты пытаешься написать прогу которая бы думала вместо тебя
и это очень пичально
поэтому я просто оставлю это здесь
ответ
Hate, я не исползую сJass
Hate, и к тому же мне не нужен числа а нужен тип по который возврашает из него может несколько
Вот так работает
library text
    struct typeweapon
    endstruct
    
    struct typearmor
    endstruct
    
    function CreateTypeWeapon takes nothing returns typeweapon
        return typeweapon.create()
    endfunction
    
    function CreateTypeArmor takes nothing returns typearmor
        return typearmor.create()
    endfunction
endlibrary
ответ
constant native IsUnitVisible takes unit whichUnit, player whichPlayer returns boolean
в редакторе есть список функций, используйте поиск по нему плес
ответ
FabulousTiger, создаешь 12 х 12 абилок с разными координатами на карте команд, ну или меньше, все завивит от того что требуется и способность на основе Техника ('ANeg') и меняя уровень техники, ты свапаешь абилки и меняешь положение иконки на карте команд на ходу, изи но довольно громоздко.
Так же есть мемхак, но если вы задаёте такие вопросы явно рано о нем думать...

23

» WarCraft 3 / Локальная переменная

Похожие вопросы:

ответ
Нужно определить какого типа переменные должна принимать верхняя функция и вместо
function myfunc_01 takes nothing returns nothing
нужно написать, например:
function myfunc_02 takes [parameter] {type}, [parameter] {type}, [parameter] {type}  returns nothing
Дальше в теле основной функции вызываешь верхнюю функцию и передаёшь в неё параметры:
call myfunc_01([parameter], [parameter], [parameter])

Лучше опиши что конкретно ты хочешь сделать. Если упомянул о хеше.
ответ
массивы или хэш
один фиг
только массивы быстрее
массивы надо знать обязательно
они используются не только в программировании но и в математике и физике
та же хэш таблица построена на основе массива
ответ
Ну так то темповые глобалки и структуры vjass'а юзают уже хрен знает сколько лет, ибо да это побыстрее, тут даже вопрос не в памяти а в том что создание переменной это отельная операция как и обнуления, что ненужно делать с глобалками (их порой даже создавать ненужно, ибо bj глобалки сделали близзард) но нужно действовать осторожно, думать головой, не вызывая иных событий где будут юзатся эти же переменные.
ответ
никогда не используй ForForce
юзай обычный цикл (loop)
в статьях это упоминается 100 раз
да даже сами близы юзают loop в бж событиях

23

» WarCraft 3 / Жизнь и смерть.

Похожие вопросы:

ответ
Сделай размеры всех декораций поменьше
ответ
Юнитов поднимает тогда же, когда и опускает, потому что я удаляю их из DedG[3], но забываю удалить из группы снарядов, таким образом, к тем кто попал под падение, уже навечно задействован акт снарядов(опускание), пока они в DedG[3]
ответ
Не видел карты но вероятно должна помочь статья о мультибордах
Создав целочисленные переменные (для каждого нужного пункта), приращиваем их значения (при убийствах и смертях) и периодически выводим в мультиборд

23

» WarCraft 3 / Как возродить созданного юнита?

Похожие вопросы:

ответ
Вот обновленная версия на структурах, я её вроде выкладывал...
либо используйте CreateCreepOfType для создания крипов, так будет респаунить тока тех крипов которых вы создали этой функцией...

23

» WarCraft 3 / Апгрейды для отдельного юнита

Похожие вопросы:

ответ
какой вашу маковку редактор ии? вырубаете стандартный ии и правите игровые константы
ответ
Ну самый топорный метод - заведи всем поп еременной Bawn9[] и при покупке делай её true.
Если переменная[владелец покупающего юнита] = true - то удалить/отменить, вернуть деньги выдать ошибку

Ну или требование поставить для покупки - юнит, а при покупке - просто удаляй пехотинца игрока красного из игры, делая требования к покупке невыполненными
ответ
Мб сбил теги анимаций? Там все завязано на тегах, у одной башни чертова куча альтернейт анимаций, вероятно ты сбил порядок анимаций в контейнере.
ответ
Вам нужно также увеличить "Дистанцию получения приказа".

23

» WarCraft 3 / Локалки

Похожие вопросы:

ответ
Действие "Pan camera as necessary (Timed)" использует функцию SmartCameraPanBJ, в которой близарды допустили ошибку вызывающую десинхронизацию.
Используй "Pan camera (Timed)".
ответ
Главный кошмар тут, конечно - 14 групп. Пришлось так делать, т. к. принципиально не хочу применять глобалки, а локалки, похоже, после дестройгруп заново не юзабельны.
Это вроде должно быть легко поправить, вместо
call DestroyGroup (firewayunits1)
везде ставь
call GroupClear(firewayunits1)
и в самом конце уже, где идет обнуление переменных, там оставляешь DestroyGroup.
И с чего такая нелюбовь к глобалкам? Хештаблица используется, а это ж тоже глобалка, причем даже не просто глобалка, а супер-глобалка. У меня с ней постоянно головная боль была, из-за возникающих после интенсивной работы странных глюков...
ответ
получение текущего приказа не требует от тебя нихера, тебе нужно, чтобы там не было "useitem", и всё
ответ
Steal nerves, Я сделал с детектором бафа обычного лечение, здоровье восстанавливаю триггерно, забил на ауру.
ответ
Steal nerves:
нет, достаточно одной глобалки bj_lastCreatedTextTag на все. И тогда не нужна никакая локалка. Так использую во многих системах, и работает. Глобалка bj_lastCreatedTextTag является темповой - ну то есть временной ссылкой, чтобы что-то там сделать дальше: цвета прозрачность настроить, время жизни и так далее.
Раньше давно-давно тоже думал, что нужно прям везде и на всё локалки ставить для мультиплеера. А как оказалось нет. Работает и глобалка. Дело в том, что у тебя задержек никаких нет, то и локалки не нужны. Потому что делаешь лишние операции - объявить - обнулить. Ну и во-вторых, у текстагов можно задавать время жизни, сами удаляться.

23

» WarCraft 3 / Гнев деревьев

Похожие вопросы:

ответ
Чел, создовай даммика в "Отряде", там где ты и заставляешь его юзать корни, чтобы создался даммик для каждого врага в диапозоне.
ответ
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
  1. чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
  2. действие проиграть звук и указываешь твою фразу
  3. выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
  1. система отлова урона
  2. морф юнита либо орбы
всё что я не описал есть в статьях
тебе нужны первые 2 раздела ("Основы" и "Триггеры и объекты")
ответ
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
ответ
Steal nerves:
  1. Выделяешь всех юнитов в определенной области в группу. Так есть определенный радиус действия (круг выбора области заклинанием типа у бурана, огненного столба и др.), в редакторе называется "Область воздействия", вокруг центра каста перебираешь всех юнитов
  2. Создаешь dummi и кастуешь над каждым юнитом в группе способность "гнев деревьев". Или пробуешь полностью триггерно создать эффект обхвата юнитов (эти лозы и корни деревьев), паузишь и периодически таймером наносишь урон до определенного времени (под конец удаляешь эффект, а если кто-то умер, то также удаляешь эффект). Только, когда триггерно делаешь, баффы нацепить не сможешь, придеться также делать. Заморочек со вторым способом больше
Способность пустышку можно создать на основе канала.

23

» WarCraft 3 / Импортные текстуры

Похожие вопросы:

ответ
Скорее всего никак. Если в импорте указать стандартный путь текстуры, то она заменится и будет недоступна.
ответ
Вот, нашёл: xgm.guru/files/100/174291/comments/328619/USTS.w3x
А вот, что можно сделать с помощью этой системы:
ответ
На Epicwar'ре ищи мапы побольше и постарше, есть шанс найти хорошие рпгшки.

23

» WarCraft 3 / Orders

Похожие вопросы:

ответ
Если биндить war3assistant-ом или подобным - не выйдет ни фига.
Если биндить прогой, работающей по другому - возможно чисто для синглплеера и сработает, но у других игроков ничего работать не будет. Разве что если уних по счастливой случайности именно такая же прога активна.
ответ
Чел, создовай даммика в "Отряде", там где ты и заставляешь его юзать корни, чтобы создался даммик для каждого врага в диапозоне.
ответ
Frozen_Cat, тут 2 варианта:
  • нужна система отлова и дифференциации урона. Это в случае если сайленс должны при применении исключительно дамажащих спеллов.
  • нужна система детекта текущей цели юнита. В случае, когда сайленс должен получать любой юнит, применивший любое заклинание против героя.
ответ
Maniac_91, Заметил что такой баг не на всех пушках,допустим у гранатомета такого нет,но вроде фиксится тупо отменой приказа, WTF???